package com.harmontronics.hanma.paas.paas.dto.output;

import com.harmontronics.hanma.paas.paas.domain.app.entity.valueobject.EntityModelStatusEnum;
import com.harmontronics.hanma.paas.paas.domain.app.entity.valueobject.EntityModelTypeEnum;
import com.harmontronics.hanma.paas.paas.domain.app.entity.valueobject.RelationTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;
import java.time.LocalDateTime;

import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * ${comments}
 *
 * @author paas-generator
 * @email paas-generator@harmontronics.com
 * @date 2021-03-31 09:10:30
 */
@Data
public class HmEntityModelResult {

    /**
     * 唯一键
     */
    @ApiModelProperty(value = "唯一键")
    private Long id;
    /**
     * 名称
     */
    @ApiModelProperty(value = "名称")
    private String name;
    /**
     * 编码
     */
    @ApiModelProperty(value = "编码")
    private String code;
    /**
     * 数据类型
     */
    @ApiModelProperty(value = "数据类型")
    private EntityModelTypeEnum type;

    /**
     * 关联类型
     */
    private RelationTypeEnum relationType;

    /**
     * 配置信息,当字段的数据类型为关联单选/多选、子表时需要
     */
    private String config;

    /**
     * 是否为系统字段
     */
    private Boolean builtIn;

    /**
     * 状态 已发布 草稿
     */
    private EntityModelStatusEnum status;

    /**
     * 排序序号
     */
    private Integer serialNum;

    @ApiModelProperty(value = "模型ID")
    private Long modelId;

    @ApiModelProperty(value = "模型Code")
    private String modelCode;
    /**
     * 数据长度
     */
    @ApiModelProperty(value = "数据长度")
    private Integer length;
    /**
     * 是否为空
     */
    @ApiModelProperty(value = "是否为空")
    private Integer nullable;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createDate;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private LocalDateTime modifyDate;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private String modifyBy;

}
